package com.yshy.moviechoseseatingcommon.entity.vo.orders;

import com.yshy.moviechoseseatingcommon.entity.dto.ComResponseDto;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * @author :
 * @desc :
 * @create: 上午11:12
 **/
@NoArgsConstructor
@Data
public class PagedsQueryVo extends ComResponseDto {

    private DataDTO data;
    /**
     * 总条数
     */
    private Integer total;
    /**
     * 每页条数
     */
    private Integer pageSize;
    /**
     * 当前页码
     */
    private Integer pageIndex;
    /**
     * 总页数
     */
    private Integer pageCount;

    @NoArgsConstructor
    @Data
    public static class DataDTO {
        /**
         * 创建时间
         */
        private String createTime;
        /**
         * 最后更新时间
         */
        private String updateTime;
        /**
         * 用户id
         */
        private Integer userId;
        /**
         * 用户名称
         */
        private String userName;
        /**
         * 订单号
         */
        private String orderNo;
        /**
         * 市场价格
         */
        private Double marketUnitPrice;
        /**
         * 订单状态
         * 0:待付款
         * 5:待出票
         * 10:已出票
         * 15:交易成功
         * -5:已取消
         */
        private Integer status;
        /**
         * 状态描述
         */
        private String statusDesc;
        /**
         * 票单价
         */
        private Double unitPrice;
        /**
         * 票总价
         */
        private Double totalPrice;
        /**
         * 支付时间
         */
        private Object paymentTime;
        /**
         * 支付金额
         */
        private Integer amount;
        /**
         * 座位描述
         */
        private String seatsDesc;
        /**
         * 座位数量
         */
        private Integer seatsCount;
        /**
         * 城市id
         */
        private Integer cityId;
        /**
         * 区域id
         */
        private Integer regionId;
        /**
         * 电影的城市
         */
        private String cinemaCity;
        /**
         * 影院id
         */
        private Integer cinemaId;
        /**
         * 影院的详细地址
         */
        private String cinemaAddr;
        /**
         * 影院名称
         */
        private String cinemaName;
        /**
         * 影厅id
         */
        private Integer hallId;
        /**
         * 影厅名称
         */
        private String hallName;
        /**
         * 场次id
         */
        private Integer showId;
        /**
         * 电影id
         */
        private Integer filmId;
        /**
         * 影片名称
         */
        private String filmName;
        /**
         * 影片语言
         */
        private String language;
        /**
         * 电影海报URL地址
         */
        private String pic;
        /**
         * 影片类型
         */
        private String versionTypes;
        /**
         * 用户备注
         */
        private String userRemark;
        /**
         * 用户下单联系手机号
         */
        private String userMobile;
        /**
         * 播放时长
         */
        private Integer duration;
        /**
         * 场次开始时间
         */
        private String showTime;
        /**
         * 场次结束时间
         */
        private String showEndTime;
        /**
         * 订单完成时间
         */
        private String completeTime;
        /**
         * 订单取消时间
         */
        private Object cancelTime;
        /**
         * 是否接受调座
         */
        private Boolean acceptAdjust;
        /**
         * 距离开场时间
         */
        private String distanceToShow;
        /**
         * 用户能否取消订单
         */
        private Boolean canUserCancel;
        /**
         * 平台id
         */
        private Integer platformId;
        /**
         * 子平台id
         */
        private Integer subPlatformId;
        /**
         * 平台唯一用户标识
         */
        private String platformUniqueId;
        /**
         * 0:竞价出票(折扣出票) 5:快速出票(非折扣出票)
         */
        private Integer drawMode;
        /**
         * 佣金
         */
        private Double commissionPrice;
        /**
         * 是否已调座
         */
        private Boolean adjusted;
        /**
         * 单个座位成本价
         */
        private Double costPrice;
        /**
         * 取消原因 5:用户取消 6:支付超时 10:出票失败 11:出票失败 12:出票失败 15:客服取消
         */
        private Integer cancelType;
        /**
         * 券码数组
         */
        private List<GetByPlatformOrderNoVo.DataDTO.CouponsDTO> coupons;

        @NoArgsConstructor
        @Data
        public static class CouponsDTO {
            /**
             * 卷码id
             */
            private Integer couponCodeId;
            /**
             * 券码
             */
            private String couponCode;

            /**
             * 券码url
             */
            private String couponCodeImageUrl;
            /**
             * 出票的座位
             */
            private GetByOrderNoVo.DataDTO.SeatsDto seats;
        }
        @NoArgsConstructor
        @Data
        public static class SeatsDto {
            /**
             * 座位名称
             */
            private String name;
        }
    }
}
